package com.hanshushi_jiekou;

import java.util.function.Function;

public class FunctionDemo {
    public static void main(String[] args) {
        convert("100", Integer::parseInt);

        convert(100, i -> String.valueOf(i + 330));

        convert("100", Integer::parseInt, i -> String.valueOf(i + 222));

        System.out.println("-----------------------------");
        String ss = "林青霞,30";
        convert(ss, s -> Integer.parseInt(s.split(",")[1]), i -> String.valueOf(i + 70));

    }

    // 把一个字符串转换成int类型，在控制台输出
    private static void convert(String s, Function<String, Integer> fun) {
        int i = fun.apply(s);
        System.out.println(i);
    }

    // 把一个int类型的数据加上一个整数之后，转为字符串在控制台输出
    private static void convert(int i, Function<Integer, String> fun) {
        String s = fun.apply(i);
        System.out.println(s);
    }

    // 把一个字符串转换int类型，把int类型的数据加上一个数，转换为字符串在控制台输出
    private static void convert(String s, Function<String, Integer> fun1, Function<Integer, String> fun2) {
        /*
        int i = fun1.apply(s);
        String ss = fun2.apply(i);
        System.out.println(ss);
        */
        // 等价于
        String apply = fun1.andThen(fun2).apply(s);
        System.out.println(apply);
    }
}
